<?php

namespace app\admin\controller;

use think\Controller;
use think\Db;
use think\Request;
use think\uploads;

class User extends Controller
{
    /**
     * 后台用户处理
     * @return \think\response\View
     */

    // 后台用户列表
    public function index()
    {
        $list = Db::table(['bk_user', 'bk_userdetails'])->order('bk_user.id', 'ASC')->where('bk_user.id = bk_userdetails.id')->select();
        // dump($list);
        // 助手函数
        return view('index', [
            'list' => $list
        ]);
        return view('admin@user/index');
    }

    // 后台添加用户
    public function add()
    {
        return view('admin@user/add');
    }

    // 后台添加用户
    public function doAdd(Request $request)
    {
       // 获取表单上传文件 例如上传了001.jpg
        $file = $request->file('ico');
        // var_dump($file);
        // 移动到框架应用根目录/public/uploads/ 目录下
        if($file){
            $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
            if($info){
                // 成功上传后 获取上传信息
                // 输出 jpg
                // echo $info->getExtension();
                // 输出 20160820/42a79759f284b767dfcb2a0197904287.jpg
                $img = $info->getSaveName();
                // 输出 42a79759f284b767dfcb2a0197904287.jpg
                // echo $info->getFilename();
                // var_dump($img);exit;
            }else{
                // 上传失败获取错误信息
                echo $file->getError();
            }
        }

        $p = $request->post();
        // die;
        // 处理数据
        $udata = [
            'name' => $p['name'],
            'tel' => $p['tel'],
            'pass' => $p['pass'],
            'ico' => $img,
            'time' => time()
        ];
        $ddata = [
            'sex' => $p['sex'],
            'age' => $p['age'],
            'address' => $p['address']
        ];

        $result = Db::name('user')->data($udata)->insert();
        $results = Db::name('userdetails')->data($ddata)->insert();

        if ($result > 0 && $results > 0) {
            return $this->success('添加成功', url('admin/user/index'));
        } else {
            return $this->error('添加失败');
        }
    }

    //用户编辑页面
    public function edit($id)
    {
        $id = Request::instance()->param('id');
        // var_dump($id);
        $user = Db::table(['bk_user'])->where('bk_user.id = '.$id)->find();
        $userdetails = Db::table(['bk_userdetails'])->where('bk_userdetails.id = '.$id)->find();
        // var_dump($admin);
        // die;
        // 助手函数
        return view('user/edit',[
           'user' => $user,
           'userdetails' => $userdetails
        ]);
    }

    //执行用户编辑的更新
    public function doEdit(Request $request, $id)
    {
        // 删除本地头像文件
        $id = Request::instance()->param('id');
        // var_dump($id);
        $userico = Db::table('bk_user')->field('ico')->where('bk_user.id = '.$id)->find();
        // var_dump($userico);
        $ico = $userico['ico'];
        // var_dump($ico);
        // die;
        $imgtime = substr($ico, 0, 8);
        // var_dump($imgtime);
        $imgname = substr($ico , 9);
        // var_dump($imgname);
        // die;
        unlink('./uploads/'.$imgtime.'/'.$imgname);
        // end
        // 获取表单上传文件 例如上传了001.jpg
        $file = $request->file('ico');
        // var_dump($file);
        // 移动到框架应用根目录/public/uploads/ 目录下
        if($file){
            $info = $file->move(ROOT_PATH . 'public' . DS . 'uploads');
            if($info){
                // 成功上传后 获取上传信息
                // $ming = $info->getFilename();
                // var_dump($ming);
                // die;
                $img = $info->getSaveName();
                // var_dump($img);
            }else{
                // 上传失败获取错误信息
                echo $file->getError();
            }
        }

        //接收更新的数据
        $info = $request->post();
        // var_dump($info);die;
        $data = [
            'ico' => $img,    
            'tel' => $info['tel'],    
            'name' => $info['name'],    
            'pass' => $info['pass'],    
            'status' => $info['status'],    
            'time' => time()
        ];
        // 更新user表中的数据
        $result =Db::name('user')->where('id',$id)->update($data);
        // var_dump($result);die;
        // die;
        $datas = [
            'sex' => $info['sex'],    
            'age' => $info['age'],    
            'address' => $info['address'],    
            'ntegral' => $info['ntegral']  
        ];
        // 更新userdetails表中的数据
        $results =Db::name('userdetails')->where('id',$id)->update($datas);




        if($result > 0){
          return $this->success('更新成功', url('admin/user/index'));
        }else{
             return $this->error('更新失败');
        }
    }

    // 删除用户
    public function delete($id)
    {
        $result = Db::name('user')->delete($id);
        if ($result) {
            $info['status'] = true;
            $info['id'] = $id;
            $info['info'] = 'ID为: ' . $id . '的用户删除成功!';
        } else {
            $info['status'] = false;
            $info['id'] = $id;
            $info['info'] = 'ID为: ' . $id . '的用户删除失败,请重试!';
        }
        return json($info);
    }

    // 用户状态
    public function change($id)
    {
        $result = Db::name('user')->find($id);
        if ($result['status']==1) {
            $result['status'] = 0;
            $info['info'] = '序号为: ' . $id . '的用户已禁用!';
        } else {
            $result['status'] = 1;
            $info['info'] = '序号为: ' . $id . '的用户已启用!';
        }
        $data = Db::name('user')->where('id ='.$id)->update($result);
        if($data){
             return json($info);
        }
    }

    

}
